home *** CD-ROM | disk | FTP | other *** search
/ Games of Daze / Infomagic - Games of Daze (Summer 1995) (Disc 1 of 2).iso / x2ftp / msdos / source / snip9503 / dequeue.h < prev    next >
Encoding:
C/C++ Source or Header  |  1995-03-14  |  1.4 KB  |  62 lines

  1. /*
  2.  *  File : Queue.h
  3.  *
  4.  *  Peter Yard  02 Jan 1993.
  5.  */
  6.  
  7. #define     TRUE    1
  8. #define     FALSE   0
  9.  
  10.  
  11.  
  12. typedef struct nodeptr datanode;
  13.  
  14. typedef struct nodeptr {
  15.  
  16.     void        *data ;
  17.     datanode    *prev, *next ;
  18.  
  19. } node ;
  20.  
  21. typedef struct {
  22.  
  23.     node        *head, *tail, *cursor;
  24.     int         size, sorted, item_deleted;
  25.  
  26. } queue;
  27.  
  28. typedef  struct {
  29.  
  30.     void        *dataptr;
  31.     node        *loc ;
  32.  
  33. } index_elt ;
  34.  
  35.  
  36. int  Q_Init( queue  *q ) ;
  37. int  Q_Empty( queue *q );
  38. int  Q_Size( queue *q ) ;
  39. int  Q_Start( queue *q );
  40. int  Q_End( queue *q );
  41. int  Q_PushHead( queue *q, void *d ) ;
  42. int  Q_PushTail( queue *q, void *d ) ;
  43. void *Q_First( queue *q ) ;
  44. void *Q_Last( queue *q ) ;
  45. void *Q_PopHead( queue *q ) ;
  46. void *Q_PopTail( queue *q ) ;
  47. void *Q_Next( queue *q ) ;
  48. void *Q_Previous( queue *q ) ;
  49. void *Q_DelCur( queue *q ) ;
  50. void *Q_Get( queue *q ) ;
  51. int  Q_Put( queue *q, void *data ) ;
  52. int  Q_Sort( queue *q, int Comp(const void *, const void *) ) ;
  53. int  Q_Find( queue *q, void *data,
  54.             int Comp(const void *, const void *) ) ;
  55. void *Q_Seek( queue *q, void *data,
  56.             int Comp(const void *, const void *) ) ;
  57. int  Q_Insert( queue *q, void *data,
  58.             int Comp(const void *, const void *) ) ;
  59.  
  60. static int  Q_BSearch( queue *q, void *key,
  61.                         int Comp(const void *, const void * ) );
  62.